﻿using System;
using System.Collections;
using System.Globalization;
using System.Configuration;
using System.Data;
using System.Data.Sql;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using SQLExecute; 

public partial class form_nghiphep2 : System.Web.UI.Page
{
    public string strMessage;
    DataSet ds;
    User u = new User();
    static string email;
    NghiPhep n = new NghiPhep();
    DateTime dt1, dt2;
    CultureInfo culture;
    DateTimeStyles styles = DateTimeStyles.None;


    protected void Page_Init(object sender, EventArgs e)
    {
        n.List_Nghi_Phep(gdNghiPhep, u.Email);
    }

    protected void Page_Load(object sender, EventArgs e)
    {
     
        if (!IsPostBack)
            if (Session["email"] != null && Session["fullname"] != null)
            {
                Init_Combo();
                lUsername.Text = Session["username"].ToString();
                lFullName.Text = Session["fullname"].ToString();
                lPhongBan.Text = Session["tenphongban"].ToString();
                email = Session["email"].ToString();
                Get_Nghi_Phep_Info(email);
                Get_Phep_Nam_Duoc_Huong();              
                n.List_Nghi_Phep(gdNghiPhep, email);
              

            }
            else Response.Redirect("login.aspx");
     
    }
    protected void Get_Phep_Nam_Duoc_Huong()
    {
       
        DateTime dt;
        DateTime.TryParse(Session["ngaynhanviec"].ToString(), culture, styles, out dt);       
        User u = new User();
        lTongSoPhepNam.Text = u.Get_Phep_Nam_Duoc_Huong(dt).ToString();

    }
    protected void Get_Nghi_Phep_Info(string email)
    { 
        n = n.Get_Nghi_Phep_Info(email);        
        DateTime dt;
        DateTime.TryParse(Session["ngaynhanviec"].ToString(), culture, styles, out dt);
        User u = new User();
        n._tongphepnam=  u.Get_Phep_Nam_Duoc_Huong(dt);

        lPhepNamDaSuDung.Text = n.PhepNam.ToString();
        if (n.PhepDacBiet > 0)
            lNghiDacBiet.Text = n.PhepDacBiet.ToString() + " ngày";
        else lNghiDacBiet.Text = "0";
        if (n.NghiOm > 0)
            lNghiOm.Text = n.NghiOm.ToString() + " ngày";
        else lNghiOm.Text = "0";

        if (n.NghiKhongHuongLuong > 0)
            lNghiKhongHuongLuong.Text = n.NghiKhongHuongLuong + " ngày";
        else lNghiKhongHuongLuong.Text = "0";



        //lPhepTon.Text = ((double)n._tongphepnam - n.PhepNam).ToString();
    }

    protected void Init_Combo()
    {
        
        cbThoiGianNghi.Items.Add("Buổi sáng");
        cbThoiGianNghi.Items.Add("Buổi chiều");
        cbThoiGianNghi.Items.Add("Nguyên ngày");
        cbThoiGianNghi.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("Choose One", "Choose One"));  

        cbLoaiPhep.Items.Add("Phép năm");
        cbLoaiPhep.Items.Add("Phép đặc biệt");
        cbLoaiPhep.Items.Add("Nghỉ không hưởng lương");
        cbLoaiPhep.Items.Add("Nghỉ ốm");

        cbLoaiPhep.Items.Insert(0, new DevExpress.Web.ASPxEditors.ListEditItem("Choose One", "Choose One"));

        cbLoaiPhep.SelectedIndex = 0;
        cbThoiGianNghi.SelectedIndex = 0;

    }
    protected void btnNghiPhepCu_Click(object sender, EventArgs e)
    {
        Response.Redirect("list_nghiphep.aspx");
    }
    protected bool CheckInfo( Page mypage)
    {

        DateTime dt1, dt2;

        if (cbLoaiPhep.SelectedIndex == 0)
        {
            lMessage.Text = "Vui lòng chọn loại phép sử dụng!.";
            return false;
        }

        
        if (txtFromDate.Text == "" || txtToDate.Text == "")
        {
            lMessage.Text = "Vui lòng nhập ngày nghỉ phép!";
            return false;
        }
        else 
        {
             string s= Common.Convert_DDMMYYYY_To_MMDDYYY(txtFromDate.Text);
             dt1 = DateTime.Parse(s);
             s = Common.Convert_DDMMYYYY_To_MMDDYYY(txtToDate.Text);
             dt2 = DateTime.Parse(s);
         
            //cho phep dang ky nghi phep nho hon ngay hien tai
            if (dt2 < dt1)
             {
                 lMessage.Text = "Ngày nghỉ phép không hợp lệ!";
                 return false;
             }
             if (dt2.DayOfYear-dt1.DayOfYear>=1
                 && (cbThoiGianNghi.Value.ToString()=="Buổi sáng"
                     || cbThoiGianNghi.Value.ToString() == "Buổi chiều"
                     ))
            {
                lMessage.Text = "Ngày nghỉ phép và thời gian nghỉ không hợp lệ!";
                return false;
            }
             if (dt2.DayOfYear-dt1.DayOfYear>15)
             {
                lMessage.Text = "Số ngày nghỉ vượt quá ngày phép!";
                return false;
             }

        }

        if (cbThoiGianNghi.SelectedIndex == 0)
        {
            lMessage.Text = "Vui lòng chọn thời gian nghỉ phép Sáng, Chiều hoặc Nguyên ngày!";
            return false;
        }

    
        
        if (cbLoaiPhep.SelectedIndex == 2 || cbLoaiPhep.SelectedIndex == 3 || cbLoaiPhep.SelectedIndex == 4
            && txtLydo.Text == "")
        { 
        
            lMessage.Text="Vui lòng nhập lý do nghỉ phép.";
            return false;
        }
        return true;
    }

    protected void ClearText()
    {
        
        cbLoaiPhep.SelectedIndex = 0;
        cbThoiGianNghi.SelectedIndex = 0;
        txtLydo.Text = "";
        txtFromDate.Text = "";
        txtToDate.Text = "";
    }
    protected void btnSumit_Click(object sender, EventArgs e)
    {
        
        int nPhongBanID=0;//    =Convert
       
        if (Session["phongbanid"]!=null)
        {
            nPhongBanID=Convert.ToInt16(Session["phongbanid"].ToString());
            
        }
        if (Session["username"] != null)
        {
            if (CheckInfo(this.Page))
            {
                culture = CultureInfo.CreateSpecificCulture("fr-FR");
                DateTime.TryParse(txtFromDate.Text, culture, styles, out dt1);
                DateTime.TryParse(txtToDate.Text, culture, styles, out dt2);
            

                NghiPhep n = new NghiPhep(Session["email"].ToString(),nPhongBanID
                                            ,dt1
                                            ,dt2
                                            ,cbThoiGianNghi.Text
                                            , cbLoaiPhep.Text, txtLydo.Text);
                n.Insert_Nghi_Phep();
                ClearText();
                lMessage.Text = "Đăng ký nghỉ phép thành công!.";
               
                msgBox.ShowOnPageLoad = true;
                

            }
            else
            {
                //popupEdit.Show();
               // lMessage.Text = "Đăng ký nghỉ thành công.";
                msgBox.ShowOnPageLoad = true;
            }
        }
        else Response.Redirect("login.aspx");
        
    }
    protected void lnkLogout_Click(object sender, EventArgs e)
    {
        FormsAuthentication.SignOut();
        Session.Clear();
        Response.Redirect("login.aspx");
    }
    protected void btnOK_Click(object sender, EventArgs e)
    {
        msgBox.ShowOnPageLoad = false;
    }


    protected void gdNghiPhep_HtmlRowCreated(object sender, DevExpress.Web.ASPxGridView.ASPxGridViewTableRowEventArgs e)
    {
        e.Row.Attributes.Add("onmouseover", "this.style.backgroundColor='#f7f7f7';");
        if ((e.VisibleIndex % 2) == 0)
        {
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='white';");
        }
        else
        {
            e.Row.Attributes.Add("onmouseout", "this.style.backgroundColor='white';");
        }
    }
}
